1. Field of the Invention
The present invention relates to a technique in a computer based data processing system for providing an intuitive graphical user interface which permits a developer to visually build a class with members. More particularly, the present invention relates to a technique by which a class and its associated members are created through a new visual paradigm which does not require the wiring of objects together or extensive use of editors.
2. Description of the Related Art
Over the last few years, object oriented programming has gained in popularity. Developing software applications using an object oriented language in an object oriented development environment can be easier than writing traditional procedural software applications, since object oriented development environments rely extensively on the reuse of code from class libraries, or blocks of code, which are prewritten to form particular functions. For relatively high level functions, the availability of and ease of use provided by class libraries has proven extremely important to the acceptance of object oriented languages. However, for complex programs or at low levels of an application which a developer is creating, classes available from class libraries often do not provide the detailed functionality or the complete functionality which may be required in an individual class. This often occurs when a developer, for example, wants to provide a detailed and customized graphical user interface. To date, the coding process for such code requires a lot of detail work on the part of the developer, such as coding by hand or pulling very small and detailed pieces of code together through a drag and drop paradigm and wiring the pieces together in a wiring diagram which visually represents the relationship between the pieces of code.
A number of tools have been developed which attempt to make this coding process easier. One technique involves coding while viewing the class hierarchy in a xe2x80x9cbrowserxe2x80x9d. For example, an application development tool called VisualAge for Smalltalk from the International Business Machines Corporation (IBM) uses a browser to show the hierarchical relationships between classes which comprise a software application which is being developed. VisualAge is a registered trademark of IBM. The VisualAge browser provides a series of interrelated columns which visually illustrate the relationships between elements and provides a work space for writing code to add to the hierarchy. A browser can be found in U.S. Pat. No. 5,615,346 to Gerken, which is assigned to IBM. In the Gerken browser, hierarchy relationships are graphically indicated by the lists of elements within each column, and code can be reviewed or edited in an editing window which appears below the columns.
Another technique for creating a class is provided by Symantec Corporation""s Visual Cafe Pro product for Java (Java is a trademark of Sun Microsystems Inc.). Visual Cafe Pro""s hierarchy editor allows a developer to visually architect an application by creating new classes in a graphical editor. A developer directly manipulates the application""s inherent structure by dragging and dropping from one class to another, which changes both the visual model and the underlying source code. Double clicking on a class invokes a class browser, and individual class members can be edited by opening an individual member or source subwindow.
Another visual programming paradigm is provided in U.S. Patent Application Ser. No. 08/657,510, entitled xe2x80x9cVisual Programming From a Tree Structurexe2x80x9d, was filed on Jun. 4, 1996, and is assigned to IBM. This visual programming technique provides an intuitive method for developing an object oriented application from a class tree structure, and provides a superior solution for programming high level functionality.
One problem with these solutions is that they can easily overwhelm the limited space available within a graphical user interface, and thus the relationships between elements can become confused. Further, their ability to simplify the application development process for providing low level functionality is limited.
Accordingly, a need exists for a technique providing an intuitive visual building system through which a developer can create or build a class and its associated members in real time and easily understand all of the relationships involved.
An object of the present invention is to provide a visual class building system.
Another object of the invention is to permit a developer to generate class codes syntax from the visual model without requiring developer knowledge of the format.
Other objects and advantages of the present invention will be set forth in part in the description and the drawings which follow, and, in part, will be obvious from the description or may be learned by practice of the invention.
To achieve the foregoing objects, and in accordance with the purpose of the invention as broadly described herein, the present invention provides a technique for permitting a software developer to visually build a class and displaying the contents of the class in an intuitive manner, comprising first subprocesses for displaying a container window representing a class upon selection by a user of an option to create a new class; second subprocesses for permitting the user to populate the class with members by adding visual representations of elements which represent code to the container window; third subprocesses for displaying the visual representations of the elements which comprise the members of the class within the container window; and fourth subprocesses for generating code for the class to conform to the visually built class.
The present invention may also comprise fifth subprocesses for permitting a user to add a first class as a member of a second class by dragging a container window which represents the first class into a container window which represents the second class. Further, the members of the class may be instance variables for the class. Also, the visual representations which are added to a container window may be dragged from a tool bar.
The present invention will now be described with reference to the following drawings, in which like reference numbers denote the same element throughout.